91907513cba4493f37f8aa86a7c14578d8bb065e,src/java/org/apache/cassandra/db/compaction/ParallelCompactionIterable.java,MergeTask,call,#,197

Before Change



            public ColumnFamily call() throws Exception
            {
                ColumnFamily cf = null;
                for (Row row : rows)
                {
                    ColumnFamily thisCF = row.cf;
                    if (cf == null)
                    {
                        cf = thisCF;
                    }
                    else
                    {
                        // addAll is ok even if cf is an ArrayBackedSortedColumns
                        SecondaryIndexManager.Updater indexer = controller.cfs.indexManager.updaterFor(row.key, false);
                        cf.addAllWithSizeDelta(thisCF, HeapAllocator.instance, Functions.<Column>identity(), indexer);
                    }
                }

After Change



            public ColumnFamily call() throws Exception
            {
                final ColumnFamily returnCF = ColumnFamily.create(controller.cfs.metadata, ArrayBackedSortedColumns.factory());

                List<CloseableIterator<Column>> data = new ArrayList<CloseableIterator<Column>>(rows.size());
                for (Row row : rows)
                {
                    returnCF.delete(row.cf);
                    data.add(FBUtilities.closeableIterator(row.cf.iterator()));
                }

                PrecompactedRow.merge(returnCF, data, controller.cfs.indexManager.updaterFor(rows.get(0).key, false));
                return PrecompactedRow.removeDeletedAndOldShards(rows.get(0).key, controller, returnCF);
            }
        }